package squareofsortedarray

// 返回有序数组的平方组成的新数组
func sortedSquares(nums []int) []int{
	// 双指针法  两端元素在新数组的后面
	left,right := 0, len(nums)-1
	var res []int = make([]int, len(nums))
	lastIdx := len(res)-1
	for left <= right{ //[left,right]这个区间是有意义的
		if nums[left]*nums[left] > nums[right]*nums[right] {
			res[lastIdx] = nums[left]*nums[left]
			lastIdx --
			left ++
		}else{
			res[lastIdx] = nums[right]*nums[right]
			lastIdx--
			right --
		}
	}
	return res
}